package com.zhangh.summer.admin.support.boot.interfaces;

import com.zhangh.summer.admin.support.boot.filter.ErpFilter;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.amqp.RabbitAutoConfiguration;
import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
import org.springframework.boot.autoconfigure.jooq.JooqAutoConfiguration;
import org.springframework.boot.autoconfigure.kafka.KafkaAutoConfiguration;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.cloud.openfeign.EnableFeignClients;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.FilterType;

import java.lang.annotation.*;

/**
 * @description: TODO
 * @author: zhanghui  zhanghlucky@163.com
 * @create: 2021-06-08 22:57
 **/

@Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Inherited

@SpringBootApplication(exclude = {
        DataSourceAutoConfiguration.class,
        RabbitAutoConfiguration.class,
        KafkaAutoConfiguration.class,
        JooqAutoConfiguration.class})
@EnableDiscoveryClient
@EnableFeignClients
@ComponentScan(value = "com.zhangh.**",excludeFilters =  {
        @ComponentScan.Filter(type = FilterType.CUSTOM, classes = ErpFilter.class) })
public @interface ErpBootApplication {
}
